#pragma once

#include <memory>

#include "../Network/GHANetwork.h"
#include "../Utils/Image/ImageDisplay.h"

class GHA
{
public:
	GHA() = delete;

	GHA(const shared_ptr<CGHANetowork> & pNN, double LearningRate, double eps);

public:
	void Training(const Vector2 & inputData, CImageDisplay * imageDisplay = nullptr);
	
protected:
	shared_ptr<CGHANetowork>  m_NN;

	double m_LeaningRate;

	double m_EPS;
};